<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="div">
        <br />
        {{num}}
        <!-- on：监听事件 -->
        <!-- 从内向外是冒泡  从外向内是捕获 -->
        <!-- 不带参数的时候，默认会将事件对象传进方法中  -->
        <!-- 带参数时： -->
        <!-- js中冒泡行为 -->
        <!-- <div @click.self="onClick" style="background-color: black;"> -->
        <div>

            <!-- 阻止冒泡行为 -->
            <!-- 不带参时 -->
            <!-- <button v-on:click.stop="onClick">点击</button> -->

            <!-- 带参数时,事件对象就消失了 -->
            <button @click.stop="onAdd(123,456,$event)">点击</button>



            <!-- 阻止默认行为 -->
            <!-- <a href="https://www.4399.com" v-on:click.prevent>好玩的网站</a> -->

            <!-- 键盘事件 -->
        </div>

    </div>

    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
    <script>

        var app = Vue.createApp({

            data: function () {
                return {
                    num: 0
                }
            },
            // 存放一些方法，供事件调用
            methods: {
                onClick(e) {
                    // 阻止冒泡
                    // e.stopPropagation();
                    this.num++;
                },
                onAdd(n1,n2){
                    e.preventDefault();
                    
                    this.num = n1+n2
                }
            },


        }).mount('#div');

    </script>
</body>

</html>